package javaman.gestor;

import javaman.dao.ClaseDao;
import javaman.factory.ClaseDaoFactory;
import javaman.dao.ProfesorCategoriaDao;
import javaman.exceptions.ClaseDaoException;
import javaman.factory.ProfesorCategoriaDaoFactory;
import javaman.modelo.Clase;
import javaman.modelo.ClasePk;

public class GestorClase {

	ClaseDao dao = ClaseDaoFactory.create();
	ProfesorCategoriaDao profesorDao = ProfesorCategoriaDaoFactory.create();
	
	public String insertarClase(Clase dto) {
		
		String resulado = "OK";
		
		try {
		
			dao.insert(dto);
		
		} catch (ClaseDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			resulado = "NOK";
		}
		return resulado;
		
	}
	
	public void modificarClase() {
		
		Clase dto = new Clase();
		ClasePk pk = new ClasePk();
		
		pk.setIdclase(1);
		dto.setIdprofesor(1);
		dto.setIdestudiante(1);
		dto.setIdestado(1);
		dto.setTitulo("DANZA-VILLE");
		dto.setDescripcion("BALLET1_VILLE");
		dto.setFechaInicio(null);
		dto.setFechaFin(null);
		dto.setCosto(0);
				
		try {
			dao.update(pk, dto);
		} catch (ClaseDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void eliminarClase() {
		
		ClasePk pk = new ClasePk();
		
		try {
			pk.setIdclase(2);
			dao.delete(pk);
		} catch (ClaseDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public Clase[] listarClase() {
		
		Clase[] clases = null;
		try {
			clases = dao.findAll();
			for(Clase clase:clases) {
				System.out.println(clase.toString());
			}
		} catch (ClaseDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return clases;
	}
	
	public Clase[] buscarClasesPorCampo() {
		
		Clase[] clases = null;
		try {
			String sql = "titulo like '%DANZA-VILLE%'";
			clases = dao.findByDynamicWhere(sql, null);
			for(Clase clase:clases) {
				System.out.println(clase.toString());
			}
		} catch (ClaseDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return clases;
	}
	
	
}
